//package com.pesking.core.sqlparser.processor;
//
//import java.sql.Connection;
//import java.sql.PreparedStatement;
//import java.sql.SQLException;
//import java.util.Iterator;
//import java.util.List;
//
//import org.apache.commons.lang.StringUtils;
//import org.springframework.stereotype.Component;
//
//import com.pesking.core.dataset.helper.DatasetHelper;
//import com.pesking.core.dataset.parameter.RequestParameter;
//import com.pesking.core.dataset.result.DatasetResult;
//import com.pesking.core.dataset.result.FinalDatasetResult;
//import com.pesking.core.dataset.result.RowDataResult;
//import com.pesking.core.dataset.sqlparser.SqlParameterHandler;
//import com.pesking.core.dataset.sqlparser.SqlParameterTypeEnum;
//import com.pesking.core.dataset.sqlparser.support.SqlParameter;
//import com.pesking.core.datasource.Dialect;
//import com.pesking.core.exception.SystemException;
//@Component
//public class DatasetSqlParameterHandler extends SqlParameterHandler {
//
//	
//	public void handle(StringBuffer sbSQL, SqlParameter sqlParameter,
//			RequestParameter requestParameter,
//			List<SqlParameterHandler> handlerList, List<String> paramValue,
//			Dialect dialect) {
//		String dsId = sqlParameter.getName();
//		if (StringUtils.isBlank(dsId)){
//			throw new SystemException("数据集参数使用方式：[DATASET:数据集ID:async标志(true:false)]");
//		}
//		FinalDatasetResult fdr = DatasetHelper.executeDataset(dsId, requestParameter,false);
//		if (!fdr.isSuccess()){
//			throw new RuntimeException(DatasetHelper.getThrowable());
//		}
//		DatasetResult dr = fdr.getDatasetResult();
//		if (dr.getRowSize() > 0){
//			RowDataResult rd = dr.getRowData(0);
//			Iterator<String> it = rd.columnNameIterator();
//			if (it.hasNext()){
//				String name = it.next();
//				String value = rd.getColumnValue(name);
//				if (value != null){
//					sbSQL.append(value);
//				}
//			}
//		}
//		
//	}
//
//	
//	public void setParameter(Connection connection,
//			PreparedStatement ps, int index, String paramValue)
//			throws SQLException {
//		
//	}
//
//	@Override
//	public SqlParameterTypeEnum getSqlParameterType() {
//		return SqlParameterTypeEnum.DATASET;
//	}
//}
